/**
 * @file mem_utils.h
 * @brief 安全内存操作工具头文件
 * 
 * 声明安全内存操作相关的函数。
 */

#ifndef MEM_UTILS_H
#define MEM_UTILS_H

#include <stdlib.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 安全内存分配
 * 
 * @param size 分配大小
 * @param tag 标签（用于日志）
 * @return void* 分配的内存指针，失败返回NULL
 */
void* mem_utils_malloc(size_t size, const char *tag);

/**
 * @brief 安全内存释放
 * 
 * @param ptr 内存指针的地址
 * @param tag 标签（用于日志）
 */
void mem_utils_free(void **ptr, const char *tag);

/**
 * @brief 获取内存使用统计信息
 * 
 * @param allocated 已分配内存大小指针
 * @param count 分配次数指针
 */
void mem_utils_get_stats(size_t *allocated, size_t *count);

/**
 * @brief 重置内存统计信息
 */
void mem_utils_reset_stats(void);

#ifdef __cplusplus
}
#endif

#endif // MEM_UTILS_H